Chod hore
Predchádzajúca stránka Nasledujúca stránka Začiatok kapitoly Koniec kapitoly Začiatok kurzu Koniec kurzu


1.5 Pamäť


Pamäť sa nachádza na matičnej doske. Procesor je v priamom kontakte s pamäťou - tu sa nachádza práve bežiaci program a jemu patriace údaje. Pamäť pozostáva z bytov a je lineárne usporiadaná od 0 po n - 1, kde n je veľkosť pamäte. Adresy sa spravidla zadávajú hexadecimálne. Slovo je najmenšia jednotka, ktorá sa prenáša a ktorú vie procesor naraz spracovať. Táto veličina vlastne charakterizuje procesor a určuje maximálnu možnú adresáciu pamäte. Ak slovo pozostáva zo 16 bitov, potom pamäť pozostáva z 216 = 65536 bytov (64 kB). Na dnešné pomery je to veľmi málo. Kapacitu pamäte zadávame v MB (220 byte) napr. 4 MB, 8 MB, atď. V prípade slov z 32 bitov dokážeme adresovať 232 = 212*220 = 4096 MB veľkú pamäť. Ak budeme adresovať nie byty ale 2, 4, 8, atď. bytov, potom pri tej istej veľkosti slov môžeme adresovať podstatne väčšiu pamäť.

Samozrejme obsah pamäte sa počas behu programu môže meniť. Každý byte pamäte môžeme dosiahnuť bezprostredne. Pri čítaní z pamäte sa jeho obsah nemení ale pri zápise sa starý údaj stráca. Pri vypnutí počítača sa obsah pamäte spravidla stráca. Procesor každú časť pamäte dosiahne za rovnakú dobu. Túto pamäť (nie celkom šťastne) voláme RAM (random access memory - náhodne dosiahnuteľná pamäť). Sú aj trvalo zapísané pamäte ROM (red only memory - pamäť z ktorej sa dá iba čítať) - údaje sú akýmsi spôsobom napálené do pamäte a bez špeciálneho zariadenia sa údaje v nich nedajú meniť.

Všeobecne sa pod pamäťou v súčasnosti chápu rôzne typy pamätí. Vnútornú pamäť počítača (na matičnej doske) voláme rýchlou, vnútornou alebo prvotnou. Počítač môže mať aj virtuálnu pamäť. Čo to je? To je prípad, keď počítač kvôli nedostatku vnútornej pamäte použije ako pamäť určitú časť z priestoru pevného disku. Ak v budúcnosti použijeme termín pamäť bez bližšieho určenia, budeme vždy chápať vnútornú pamäť počítača.



1.6 Centrálna jednotka (CPU)


Druhou nutnou súčasťou matičnej dosky je centrálna jednotka - Central Processing Unit (CPU). Toto je vlastne "mozog" počítača a všeobecne sa volá procesorom. Procesor zabezpečuje prevedenie programu a kontakt medzi jednotlivými časťami počítača. Procesor dokáže čítať údaje zo vstupných zariadení, uložiť údaje do pamäte, vykonávať s údajmi výpočty a zobraziť výsledky na výstupných zariadeniach. Samozrejme sám od seba nevie nič, tieto úkony musia byť naprogamované. Každý procesor má vlastný zoznam príkazov, ktoré dokáže vykonávať. Dokáže vykonavať iba tieto príkazy ale s veľmi veľkou rýchlosťou. Týchto príkazov je niekoľko stovák. Teda "nevie" veľmi veľa. Procesor je "hlúpy" robot - nerozmyšľa ale svoju činnosť vykonáva s obrovskou rýchlosťou. A ešte v jednej podstatnej veci sa procesor líši od človeka - procesor sa nemýli.

Procesor pozostáva z registrov. Veľkosť registrov je určujúca pre daný procesor. Register môže byť 8, 16, 32, … bitový. Je vlastne záložným priestorom procesora, ktorý je "stále pri ruke" a teda aktuálne údaje CPU môže podstatne rýchlejšie presúvať ako údaje z pamäte. Procesor pozostáva z dvoch logických častí, z radiča - riadiacej jednotky (Control Unit) a z aritmeticko-logickej jednotky (Arithmetic/Logic Unit=ALU).

Radič - riadiaca jednotka pozostáva aspoň z jedného registra príkazov a z jedného počítadla príkazov. V registri príkazov je vždy aktuálny príkaz a v počítadle príkazov sa nachádza adresa pamäte nasledujúceho príkazu. Radič - riadiaca jednotka spolu s aritmeticko-logickou jednotkou vykonávajú príkazy. Akumulátor, ako register, slúži na dočasné uchovanie údajov. Aritmeticko-logická jednotka vykonáva aritmetické operácie a podľa aktuálnej podmienky dokáže rozhodnúť, ktorým príkazom má pokračovať. Samozrejme toto je veľmi zjednodušená schéma činnosti, ale pre predstavu o behu programu je pre nás postačujúca. V skutočnosti procesor ma oveľa viac (aj niekoľko stovák) registrov.



1.7 Strojový kód


Program v strojovom kóde (v strojovom jazyku) je vlastne postupnosť pre počítač vykonávateľných príkazov a preto ho nazývame vykonávateľným programom (executable program). Príkaz (operácia) v strojovom kóde začína kódom príkazu, čo je zvyčajne jeden byte. Za kódom príkazu v strojovom jazyku nasledujú parametre (argumenty, operandy) príkazu, ak sú. Pre každý príkaz je jednoznačne známe (z definície) koľko má parametrov a z koľkých bytov sa skladá. Sú aj také príkazy, ktoré nemajú parametre. Takým je napríklad príkaz zastavenia výpočtu. Parametrom príkazu môže byť hodnota alebo taká adresa v pamäti v ktorej je údaj alebo ďalšia adresa.

Uvedieme niekoľko vymyslených príkladov:

Kód príkazu

Parametre

 
     

$02

$05

 

Ulož do akumulátora

číslo 5.

 
     

$10

$20

$05

Ulož do akumulátora

údaj z adresy $20

a čísla 5.

     

$01

   

Stop.

   

  • Príkaz $02 je dvojbytový. Má jeden parameter, ktorý je údajom.
  • Príkaz $10 je trojbytový. Má dva parametre. Prvý z nich je adresa a druhý je údaj.
  • Príkaz $01 je jedenbytový. Je bez parametrov.


Vidíme, že kód príkazu je jedno hexadecimálne číslo, ktorý je pre človeka pomerne ťažko zrozumiteľný. Napr. vyššie uvedená časť programu má tvar: 020510200501 .

Prácu procesora meriame v strojových cykloch - daný príkaz môže procesor vykonať za 1, 2 alebo viac strojových cyklov. Čas za ktorý prebehne jeden strojový cyklus je veľmi dôležitým parametrom rýchlosti počítača. Rýchlosť počítača vyjadrujeme v MHz-och (megahertz). Rýchlosť 1 MHz znamená, že jednu sekundu prebehne v počítači 1 milión cyklov.

Písať program v strojovom kóde je pomerne zložitá vec ale dosť často je nutné napísať ho na "nízkej" úrovni, blízkej k strojovému jazyku, lebo len tak sa dajú využiť efektívne prostriedky procesora. Za týmto účelom bol vytvorený jazyk Assembler.